package com.bawei.router.degrade

import android.content.Context
import com.alibaba.android.arouter.facade.Postcard
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.facade.service.DegradeService
import com.bawei.base.RoutePath

/**
 * Author: Jason Zhang
 * Date: 2024/12/14
 * Desc: 全局降级策略（页面跳转失败的情况下，可以执行页面降级策略，一般可以跳转到公共提示页面）
 * 注意：全局降级策略为默认策略，如果配置局部降级回调后，全局降级策略将不会执行
 */
@Route(path = RoutePath.PATH_GLOBAL_DEGRADE)
class GlobalDegradeService: DegradeService {

    private lateinit var mContext: Context


    override fun init(context: Context?) {
        if (context != null) {
            mContext = context
        }
    }

    /**
     * 跳转失败回调方法
     */
    override fun onLost(context: Context, postcard: Postcard) {
        //重置跳转路径或页面Path
        postcard.group = RoutePath.GROUP_EMPTY
        postcard.path = RoutePath.PATH_EMPTY_PAGE
        postcard.navigation()
    }
}